#include "Pattern.hpp"
#include "AlternedAllocDistribution.hpp"


using namespace std;
static inline void simulation(int taille_simulation, int ordre,float to)
{ 
  /*Choisir une distribution des allocations*/  
  SourceBinaire *b = FactoryDistribution::getSourceBinaireBernouillie(0) ;
  IAllocDistribution *d =NULL;  
  
  d= new AlternedAllocDistribution(to);
  //printf("Merde de lerde\n");  
  Pattern p(taille_simulation,d,b,false);
  p.lancerSimulation();
  
  cout << "Ecriture des mesures dans le fichier" <<endl;
  printf("# %f ",1-to);
  p.dumpMeasures();
  
  /**
   *supprimer les objets
   */
  delete d;
  delete b;
}

#include <string.h>

int main(int argc,char**argv)
{
  float to=0.5;
  int ordre=1;
  int taille=40000;
  
  if(argc >= 2){
    to=atof(argv[1]);
  }
  
  printf("Une simulation pattern fragmentation avec %d blocs, taux d'ecriture de %f, nombre de classes de blocs %d\n",taille,to,ordre);
  simulation(taille,ordre,1-to);
  return 0;
}
